#include <iostream>

using namespace std;

class Point {
	protected:
		int x, y;
	
	public:
		Point(int x=0, int y=0);
		int getx() { return x; }
		int gety() { return y; }
};

Point::Point(int x, int y) {
	cout << "I'm Point Constructor " << endl;
	this->x = x;
	this->y = y;
}

class Circle : virtual public Point {
	private:
		int radius;

	public:
		Circle(int cx, int cy, int cr): Point(cx, cy) {
			cout << "I'm Circle Constructor " << endl;
			this->radius = cr;
		}
		int getr() { return radius; }
};

int main(int argc, char * argv[]) {
	Circle c(10, 20, 5);

	cout << "Circle of c is " << c.getx() << "," << c.gety() << endl;
	cout << "radius of c is " << c.getr() << endl;

	return 0;
}
